Skip to content

Filter built ABIs so the library compiles when building for select ABIs#284

Merged
j-piasecki merged 1 commit intomainfrom
@jpiasecki/fix-android-build-one-abi
Apr 11, 2024
Merged

Filter built ABIs so the library compiles when building for select ABIs#284
j-piasecki merged 1 commit intomainfrom
@jpiasecki/fix-android-build-one-abi

Conversation

@j-piasecki
Copy link
Collaborator

Details

The library is always being built for all available ABIs even when the app it's being used in is only built for one. This causes it to fail on linking stage if React Native is built from source, since relevant .so files from React Native core don't exist. This PR adds relevant filters.

Manual Tests

Run yarn build:android from the example app.

Copy link
Collaborator

@tomekzaw tomekzaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was a tough one 😄

@j-piasecki j-piasecki merged commit c2951fb into main Apr 11, 2024
@j-piasecki j-piasecki deleted the @jpiasecki/fix-android-build-one-abi branch April 11, 2024 11:04
satya164 added a commit to callstack/react-native-builder-bob that referenced this pull request May 16, 2024
<!-- Please provide enough information so that others can review your
pull request. -->
<!-- Keep pull requests small and focused on a single change. -->

### Summary

In the native template `abiFilters` is missing from
`externalNativeBuild` block. This means that the library would be built
for every available ABI when building the application, even if the
application itself is being built for a specific one. This is not that
problematic (besides taking more time) when using React Native aar, but
when building RN from source the core `.so` files will be built for that
specific ABI. In case the library depends on a `.so` file, it would fail
at the linking stage due to missing `.so` for the remaining ABIs.

### Test plan
See
- Expensify/App#40102
- Expensify/react-native-live-markdown#284
- https://github.com/margelo/react-native-quick-sqlite/pull/41

---------

Co-authored-by: Satyajit Sahoo <satyajit.happy@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants